home *** CD-ROM | disk | FTP | other *** search
- /*
- * @(#)KeyTest.java 1.5 95/10/03 Sami Shaio
- *
- * Copyright (c) 1995 Sun Microsystems, Inc. All Rights Reserved.
- *
- * Permission to use, copy, modify, and distribute this software
- * and its documentation for NON-COMMERCIAL purposes and without
- * fee is hereby granted provided that this copyright notice
- * appears in all copies. Please refer to the file "copyright.html"
- * for further important copyright and licensing information.
- *
- * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF
- * THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
- * TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR
- * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
- * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
- */
- import java.awt.*;
-
- public class KeyTest extends Frame {
- String value = "";
- Color keyColor = Color.green;
- Font font = new Font("Helvetica", Font.BOLD, 24);
-
- public KeyTest() {
- resize(300, 300);
- show();
- }
-
- public static void main(String args[]) {
- new KeyTest();
- }
-
- public void paint(Graphics g) {
- g.setColor(keyColor);
- g.setFont(font);
- Rectangle bounds = bounds();
- FontMetrics fm = g.getFontMetrics(font);
-
- g.drawString(value,
- ((bounds.width - fm.stringWidth(value))/ 2),
- ((bounds.height - fm.getHeight()) / 2));
- }
-
- void displayKey(int key, int modifiers, boolean pressed) {
- String keyString;
-
- char s[] = new char[1];
-
- if (pressed) {
- keyColor = Color.red;
- } else {
- keyColor = Color.black;
- }
- if ((modifiers&Event.CTRL_MASK) != 0) {
- s[0] = (char)(key + 'a' - 1);
- } else {
- s[0] = (char)key;
- }
- keyString = new String(s);
-
- value = modifierString(modifiers) + keyString + "[" + key + "]";
- repaint();
- }
-
- String modifierString(int modifiers) {
-
- String mstr = "";
- if ((modifiers&Event.CTRL_MASK) != 0) {
- mstr = mstr+"Ctrl-";
- }
- if ((modifiers & Event.SHIFT_MASK) != 0) {
- mstr = mstr+"Shift-";
- }
- if ((modifiers & Event.META_MASK) != 0) {
- mstr = mstr+"Meta-";
- }
- if ((modifiers & Event.ALT_MASK) != 0) {
- mstr = mstr+"Alt-";
- }
-
- return mstr;
- }
-
- void displayKeyAction(Event e, boolean pressed) {
- String keyString;
-
- if (pressed) {
- keyColor = Color.red;
- } else {
- keyColor = Color.black;
- }
- switch (e.key) {
- case Event.HOME:
- keyString = "Home";
- break;
- case Event.END:
- keyString = "End";
- break;
- case Event.PGUP:
- keyString = "PageUp";
- break;
- case Event.PGDN:
- keyString = "PageDown";
- break;
- case Event.UP:
- keyString = "Up";
- break;
- case Event.DOWN:
- keyString = "Down";
- break;
- case Event.LEFT:
- keyString = "Left";
- break;
- case Event.RIGHT:
- keyString = "Right";
- break;
- case Event.ESC:
- keyString = "ESC";
- break;
- case Event.F1:
- keyString = "F1";
- break;
- case Event.F2:
- keyString = "F2";
- break;
- case Event.F3:
- keyString = "F3";
- break;
- case Event.F4:
- keyString = "F4";
- break;
- case Event.F5:
- keyString = "F5";
- break;
- case Event.F6:
- keyString = "F6";
- break;
- case Event.F7:
- keyString = "F7";
- break;
- case Event.F8:
- keyString = "F8";
- break;
- case Event.F9:
- keyString = "F9";
- break;
- case Event.F10:
- keyString = "F10";
- break;
- case Event.F11:
- keyString = "F11";
- break;
- case Event.F12:
- keyString = "F12";
- break;
- default:
- keyString = "???";
- break;
- }
- value = modifierString(e.modifiers) + keyString;
- repaint();
- }
-
- void displayMouse(Event e) {
- value = modifierString(e.modifiers) + "Button (" + e.x + ", "
- + e.y + ")";
- switch (e.id) {
- case Event.MOUSE_DRAG:
- value = value + "...";
- case Event.MOUSE_DOWN:
- keyColor = Color.red;
- break;
- case Event.MOUSE_MOVE:
- value = value + "'''";
- case Event.MOUSE_UP:
- keyColor = Color.black;
- break;
- default:
- break;
- }
- repaint();
- }
-
- public boolean handleEvent(Event e) {
- switch (e.id) {
- case Event.WINDOW_DESTROY:
- System.exit(0);
- return true;
- case Event.MOUSE_DOWN:
- case Event.MOUSE_UP:
- case Event.MOUSE_MOVE:
- case Event.MOUSE_DRAG:
- displayMouse(e);
- return true;
- case Event.KEY_PRESS:
- case Event.KEY_RELEASE:
- displayKey(e.key, e.modifiers, e.id==Event.KEY_PRESS);
- return true;
- case Event.KEY_ACTION:
- case Event.KEY_ACTION_RELEASE:
- displayKeyAction(e, e.id==Event.KEY_ACTION);
- return true;
- default:
- return false;
- }
- }
- }
-
-